﻿Imports System.Data.SqlClient
Public Class FrmActividades

    Dim classController As New Class_RC_Controller.rc_Mantenimiento

    Private _CodActividad As Integer = 0

    Public Property CodActividad() As Integer
        Get
            Return _CodActividad
        End Get
        Set(ByVal value As Integer)
            _CodActividad = value
        End Set
    End Property

   

    Private Sub CargarActividades()
        Try
            If CodActividad > 0 Then

                Dim ds As New DataTable
                ds = classController.get_Actividad_All(oiml.dbConn, CodActividad, "", 0)

                If Not ds Is Nothing Then
                    txtcodigo.Text = ds.Rows(0)("CodActividad")
                    txtdescripcion.Text = ds.Rows(0)("DescActividad")
                    txtobsact.Text = ds.Rows(0)("ObsAct")
                End If

            Else
                txtdescripcion.Focus()
            End If

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancelar.Click
        Me.Close()

    End Sub

    Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btneliminar.Click

        If CodActividad > 0 Then
            If MessageBox.Show("Desea eliminar el registro seleccionado?", "Actividades", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                If classController.Delete_Actividad(oiml.dbConn, CodActividad) Then
                    Me.DialogResult = Windows.Forms.DialogResult.OK
                    Me.Close()
                Else
                    MessageBox.Show("Error: " & classController.MessageError.Message, "Actividades", MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

            End If

        End If

    End Sub

    Private Function ValidarCampos() As Boolean

        Dim controlCampos As Boolean = False

        If txtDescripcion.Text = "" Then
            'ErrorProvider.SetError(txtdescripcion, "Campo obligatorio")
            controlCampos = True
        Else
            'ErrorProvider.SetError(txtdescripcion, "")
        End If        '

        Return controlCampos

    End Function

    Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnguardar.Click

        If ValidarCampos() Then
            Exit Sub
        End If

        If CodActividad = 0 Then
            CodActividad = classController.Insert_Actividad(oiml.dbConn, txtdescripcion.Text, cmbsector.SelectedValue, txtobsact.Text)
            If CodActividad > 0 Then
                MessageBox.Show("Registro grabado con exito!", "Actividades", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                Me.DialogResult = Windows.Forms.DialogResult.OK
                Me.Close()

            Else
                MessageBox.Show("Error: " & classController.MessageError.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        Else
            If classController.Update_Actividades(oiml.dbConn, CodActividad, txtdescripcion.Text, cmbsector.SelectedValue, txtobsact.Text) Then
                MessageBox.Show("Registro grabado con exito!", "Actividades", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                Me.DialogResult = Windows.Forms.DialogResult.OK
                Me.Close()

            Else
                MessageBox.Show("Error: " & classController.MessageError.Message, "Actividades", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        End If

    End Sub
    Private Sub llenarcmbsector()

        Dim dstipo As DataTable
        dstipo = classController.get_Sector(oiml.dbConn)
        With Me.cmbsector
            .DataSource = dstipo
            .DisplayMember = "DescSector"
            .ValueMember = "CodSector"
        End With

    End Sub
    Private Sub FrmActividades_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CargarActividades()
        llenarcmbsector()
    End Sub




    'Private oDataAdapter As SqlDataAdapter
    'Private oDataAdapterB As SqlDataAdapter
    'Private oDataset As DataSet
    'Private iPosicFilaActual As Integer
    'Private Sub btnagregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    Me.limpiar()
    '    Me.habilitar()
    '    Me.btncancelar.Enabled = True
    '    Me.btnguardar.Enabled = True
    '    Me.txtdescripcion.Focus()
    'End Sub

    'Private Sub btnmodificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    Me.habilitar()
    '    Me.btnguardar.Enabled = True
    'End Sub

    'Private Sub btneliminar_Click(sender As System.Object, e As System.EventArgs) Handles btneliminar.Click
    '    cn.Open()
    '    'Creamos un commando para realizar el alta del
    '    'contacto en la base de datos
    '    Using oCmd As New SqlCommand

    '        'asignamos la conexion de trabajo
    '        oCmd.Connection = cn

    '        'utilizamos stored procedures
    '        oCmd.CommandType = CommandType.StoredProcedure

    '        'el indicamos cual stored procedure utilizar
    '        oCmd.CommandText = "ActividadDelete"

    '        'le asignamos los parámetros para el stored procedure
    '        'los valores viene en el parámetro item del procedimiento
    '        oCmd.Parameters.AddWithValue("@CodActividad", txtcodigo.Text)
    '        'Ejecutamos el comando y retornamos el id generado
    '        oCmd.ExecuteScalar()
    '    End Using
    '    cn.Close()
    '    Me.btnprimero.PerformClick()
    'End Sub

    'Private Sub btnguardar_Click(sender As System.Object, e As System.EventArgs) Handles btnguardar.Click
    '    If txtcodigo.Text = "" Then
    '        Dim existe As Integer
    '        cn.Open()
    '        'Creamos un commando para realizar el alta del
    '        'contacto en la base de datos
    '        Using oCmd As New SqlCommand

    '            'asignamos la conexion de trabajo
    '            oCmd.Connection = cn

    '            'utilizamos stored procedures
    '            oCmd.CommandType = CommandType.StoredProcedure

    '            'el indicamos cual stored procedure utilizar
    '            oCmd.CommandText = "ActividadAdd"

    '            'le asignamos los parámetros para el stored procedure
    '            'los valores viene en el parámetro item del procedimiento
    '            oCmd.Parameters.AddWithValue("@DescActividad", txtdescripcion.Text)
    '            oCmd.Parameters.AddWithValue("@ObsAct", txtobsact.Text)
    '            oCmd.Parameters.AddWithValue("@CodSector", cmbsector.SelectedValue)
    '            'Ejecutamos el comando y retornamos el id generado
    '            existe = oCmd.ExecuteNonQuery
    '            If existe = -1 Then
    '                MessageBox.Show("LA ACTIVIDAD YA EXISTE", "ACTIVIDAD", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    '            End If
    '        End Using
    '        cn.Close()
    '        inhabilitar()
    '        CargarDatos()
    '        Me.btnultimo.PerformClick()
    '    Else
    '        cn.Open()
    '        'Creamos un commando para realizar el alta del
    '        'contacto en la base de datos
    '        Using oCmd As New SqlCommand

    '            'asignamos la conexion de trabajo
    '            oCmd.Connection = cn

    '            'utilizamos stored procedures
    '            oCmd.CommandType = CommandType.StoredProcedure

    '            'el indicamos cual stored procedure utilizar
    '            oCmd.CommandText = "ActividadUpdate"
    '            'le asignamos los parámetros para el stored procedure
    '            'los valores viene en el parámetro item del procedimiento
    '            oCmd.Parameters.AddWithValue("@CodActividad", txtcodigo.Text)
    '            oCmd.Parameters.AddWithValue("@DescActividad", txtdescripcion.Text)
    '            oCmd.Parameters.AddWithValue("@ObsAct", txtobsact.Text)
    '            oCmd.Parameters.AddWithValue("@CodSector", cmbsector.SelectedValue)
    '            'Ejecutamos el comando y retornamos el id generado
    '            oCmd.ExecuteNonQuery()

    '        End Using
    '        cn.Close()
    '        inhabilitar()
    '        CargarDatos()
    '    End If

    'End Sub

    'Private Sub btncancelar_Click(sender As System.Object, e As System.EventArgs) Handles btncancelar.Click
    '    Me.inhabilitar()
    '    Me.iPosicFilaActual = (Me.oDataset.Tables("dbo.ACTIVIDADES").Rows.Count - 1)
    '    Me.CargarDatos()
    'End Sub

    'Private Sub btnsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    Me.Close()
    'End Sub

    'Private Sub btnprimero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    'establecer el marcador de registro en el primero
    '    Me.iPosicFilaActual = 0
    '    Me.CargarDatos()
    'End Sub

    'Private Sub btnanterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    'si estamos en el primer registro no hacer movimiento
    '    If Me.iPosicFilaActual = 0 Then
    '        MessageBox.Show("No se puede retroceder ""Primer Registro""", "ACTIVIDADES", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    '    Else
    '        'disminuir el marcador de registro y actualizar los controles con los datos,
    '        'del registro actual
    '        Me.iPosicFilaActual -= 1
    '        Me.CargarDatos()

    '    End If
    'End Sub

    'Private Sub btnsiguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    'si estamos en el ultimo registro no hacer movimiento
    '    If Me.iPosicFilaActual = (Me.oDataset.Tables("dbo.ACTIVIDADES").Rows.Count - 1) Then
    '        MessageBox.Show("No se puede avanzar ""Ultimo Registro""", "ACTIVIDADES", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    '    Else
    '        'incrementar marcador de registro y actualizar los controles con los datos del registro
    '        'actual
    '        Me.iPosicFilaActual += 1
    '        Me.CargarDatos()
    '    End If
    'End Sub

    'Private Sub btnultimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    ' establecer el marcador de registro en el primero
    '    'obteniendo el número de filas que contiene la tabla menos uno
    '    Me.iPosicFilaActual = (Me.oDataset.Tables("dbo.ACTIVIDADES").Rows.Count - 1)
    '    Me.CargarDatos()
    'End Sub

    'Private Sub FrmActividades_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '    Me.CargarDatos()
    '    Me.inhabilitar()
    'End Sub
    'Public Sub inhabilitar()
    '    'inhabilitar los textbox
    '    Me.txtcodigo.Enabled = False
    '    Me.txtdescripcion.Enabled = False
    '    Me.txtobsact.Enabled = False
    '    Me.cmbsector.Enabled = False

    '    'inhabilitar los botones
    '    Me.btnguardar.Enabled = False
    '    Me.btnagregar.Enabled = True
    '    Me.btnmodificar.Enabled = True
    '    Me.btneliminar.Enabled = True
    '    Me.btnsalir.Enabled = True
    '    Me.btncancelar.Enabled = False
    '    Me.btnprimero.Enabled = True
    '    Me.btnsiguiente.Enabled = True
    '    Me.btnanterior.Enabled = True
    '    Me.btnultimo.Enabled = True
    'End Sub
    'Public Sub habilitar()
    '    'habilitar controles para permitir la insersion
    '    Me.txtcodigo.Enabled = False
    '    Me.txtdescripcion.Enabled = True
    '    Me.txtdescripcion.Focus()
    '    Me.txtobsact.Enabled = True
    '    Me.cmbsector.Enabled = True

    '    'habilitar controles
    '    Me.btnguardar.Enabled = True
    '    Me.btnagregar.Enabled = False
    '    Me.btnmodificar.Enabled = False
    '    Me.btneliminar.Enabled = False
    '    Me.btncancelar.Enabled = True
    '    Me.btnsalir.Enabled = False
    '    Me.btnprimero.Enabled = False
    '    Me.btnsiguiente.Enabled = False
    '    Me.btnanterior.Enabled = False
    '    Me.btnultimo.Enabled = False
    'End Sub
    'Public Sub limpiar()
    '    Me.txtcodigo.Text = ""
    '    Me.txtdescripcion.Text = ""
    '    Me.txtobsact.Text = ""
    '    Me.cmbsector.Text = ""
    'End Sub
    'Private Sub CargarDatos()

    '    Dim oDatatable As DataTable

    '    'crear adaptado
    '    Me.oDataAdapter = New SqlDataAdapter("SELECT * FROM dbo.ACTIVIDADES", cn)
    '    Me.oDataAdapterB = New SqlDataAdapter("SELECT CodSector, DescSector FROM dbo.SECTORES", cn)
    '    'crea dataset
    '    Me.oDataset = New DataSet()
    '    oDatatable = New DataTable()
    '    cn.Open()
    '    'llenar con el adaptador el dataset
    '    Me.oDataAdapter.Fill(oDataset, "dbo.ACTIVIDADES")
    '    Me.oDataAdapterB.Fill(oDatatable)

    '    cn.Close()
    '    'obtener un objeto con la fila actual
    '    Dim oDataRow As DataRow
    '    oDataRow = Me.oDataset.Tables("dbo.ACTIVIDADES").Rows(Me.iPosicFilaActual)
    '    ' cargar los controles del formulario con los valores de los campos del registro
    '    Me.txtcodigo.Text = CStr(oDataRow("CodActividad"))
    '    Me.txtdescripcion.Text = oDataRow("DescActividad")
    '    Me.txtobsact.Text = oDataRow("ObsAct")
    '    'Cargar combo de Areas
    '    'combo ciudades
    '    Me.cmbsector.DataSource = oDatatable
    '    Me.cmbsector.DisplayMember = "DescSector"
    '    Me.cmbsector.ValueMember = "CodSector"
    '    Me.cmbsector.SelectedValue = CStr(oDataRow("CodSector"))
    'End Sub

   
End Class